home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
System Booster
/
System Booster.iso
/
Archives
/
ForCLI
/
cd108.lha
/
cd
/
cd.doc
< prev
next >
Wrap
Text File
|
1992-10-14
|
9KB
|
243 lines
Format : cd [Verzeichnis[*]] [-neu] [-ffilename]
Schablone : cd Verzeichnis/A
Bedeutung : Das Programm 'cd' funktioniert ähnlich wie 'cd'. Mit ihm kann
man das aktuelle Verzeichnis wechseln. Anders als bei 'cd' muß
man aber nicht stets den kompletten Pfad angeben. Es reicht,
wenn man ein Kürzel verwendet. Dies funktioniert auch über
Platten hinweg. Wer nur Disketten hat, kann sich mit einem
Trick auch nach dem Aufruf von 'cd' die richtige Diskette
anfordern lassen.
Ein Beispiel:
Man weiß, daß sich irgendwo auf den Partitionen seines Rechners
das Verzeichnis "vergeß_ich_nie" befindet. Man weiß aber
leider nicht mehr, wo das war. Statt nun mit einem 'find'-
Programm auf Suche zu gehen, tippt man
cd vergeß_
und schon ist man in dem gesuchten Verzeichnis.
Funktion : 'cd' durchsucht natürlich nicht bei jedem Aufruf alle
verfügbaren Partitionen. Das würde viel zu lange dauern.
Statt dessen macht es sich einmal eine Übersicht über alle
Partitionen und schreibt diese in die Datei "s:cd.liste".
Wenn Sie dann eine Zeile wie oben bereits im Beispiel gezeigt
eintippen, dann sucht 'cd' im der Datei "s:cd.liste" nach dem
eingegebenen Begriff. Findet es in einer Zeile den Begriff,
nimmt es die ganze Zeile und versucht sie zum aktuellen
Verzeichnis zu machen.
Hier ein Ausschnitt aus "s:cd.liste":
dh2:TeX-Texte/t
dh2:fontlib
dh2:config
dh2:UseNet+PD
dh2:UseNet+PD/Path
dh2:UseNet+PD/Dice
dh2:UseNet+PD/Dice/examples
dh2:UseNet+PD/Dice/dlib
dh2:UseNet+PD/Dice/vergeß_ich_nie
dh2:UseNet+PD/Dice/dutil
dh2:UseNet+PD/Dice/include
In der drittletzten Zeile steht das gesuchte Verzeichnis. 'cd'
nimmt nun diese Zeile und führt ein
cd dh2:UseNet+PD/Dice/vergeß_ich_nie
aus. 'cd' nimmt also immer das erste Verzichnis, das es in
"s:cd.liste" findet und wählt dieses an. Wenn weitere
Verzeichnisse auf das gleiche Suchwort passen, müssen Sie das
Suchwort verlängern oder verändern. Um zum Beispiel das
"vergeß_ich_nie" anzuwählen, können Sie auch
cd ce/ver
eingeben.
Damit Sie nicht ständig zwischen zwei Programmen wie 'c:cd' und
'cd' hin - und herwechseln müssen, kann 'cd' die Funktion von
'c:cd' vollständig übernehmen. Sie können also auch mit 'cd'
ganz normal Verzeichnisse anwählen. Dabei gilt folgende
Reihenfolge, mit der 'cd' versucht, das Verzeichnis zu wechseln:
1. wie angegeben im aktuellen Verzeichnis
2. als Wortanfang im aktuellen oder angegebenen Verzeichnis
3. in der Liste in "s:cd.liste"
Fall 1:
-------
cd sys:Utilities
Fall 2:
-------
cd sys:Util
... dies entspricht der Folge ...
cd sys:
cd Util
Fall 3:
-------
cd Util
Version 1.03 : cd wertet nun die Environment-Variable HOME aus.
Diese kann 'local' oder 'global' sein (in 2.0 gibt es da einen
Unterschied). Wenn man in sein HOME-Verzeichnis wechseln möchte,
gibt man nur
cd ~
an, und schon befindet man sich in dem Verzeichnis, dessen Name in
der Variablen HOME steht. Diese kann wie folgt gesetzt werden:
setenv HOME "work:c-compiler/Sourcen"
oder auch
set HOME "work:c-compiler/Sourcen" (nur in 2.0 möglich)
Letzteres ist besonders sinnvoll, da die Variable HOME dann nur
local in der Shell festgelegt ist. Jede Shell kann damit ein eigenes
HOME-Verzeichnis besitzen.
Für MSDOS oder UNIX-Freaks:
cd ..
führt zu einem Wechsel in das übergeordnete Verzeichnis
Erster Start : Bevor man 'cd' benutzen kann, muß man ihm sagen, welche
Partitionen und Disketten 'cd' beim ersten Start durchsuchen
soll. Dies geschieht in der Datei "s:cd_drivelist". Hier
können Sie Zeile für Zeile Laufwerke, Verzeichnisse und auch
Diskettennamen angeben, die 'cd' durchgucken soll. Sie darf
keine Leerzeilen enthalten. In jeder Zeile hat lediglich ein
Laufwerk oder ein Verzeichnis zu stehen. Bei Verzeichnissen
muß ein '/' das letzte Zeichen sein.
Ein Beispiel
dh0:
dh1:
dh2:Texte/
Beim Aufruf von 'cd' werden dann nur die beiden Partitionen
in "dh0:", "dh1:" und die Verzeichnisse in "dh2:Texte"
berücksichtigt. Verzeichnisse in "dh2:" wird 'cd' dann nicht
finden.
Optionen : Wenn Sie lange Zeit 'cd' benutzen und viele Verzeichnisse auf
Ihren Partitionen entstanden sind, die noch nicht in der Liste
stehen, müssen Sie diese notgedrungen aktualisieren. Hierzu
gibt es mehrere Möglichkeiten.
Zum einen läßt sich 'cd' mit der Option '-neu'
(kleingeschrieben) aufrufen. Dann erzeugt es eine neue Datei
"s:cd.liste". Dieses Verfahren ist am sichersten. Es
funktioniert immer, dauert aber auch am längsten.
Zum anderen kann man sich eine Script-Datei schreiben, die
jedes neue Verzeichnis automatisch an "s:cd.liste" anfügt,
wenn man ein Verzeichnis anlegt. Anbei findet sich eine solche
Script-Datei. Sie heißt "mkdir". Probleme gibt es mit dieser
Methode, wenn man Verzeichnisse löscht und wenn neue
Verzeichnisse nicht von "mkdir", sondern beispielsweise von
"copy" angelegt werden. Es empfiehlt sich also, von Zeit zu
Zeit "cd -neu" aufzurufen.
Manchmal kann es nützlich sein, nicht nur eine Liste mit allen
Verzeichnissen zu haben, sondern deren mehrere. So ist es
sicher sinnvoll, eine Liste mit allen Verzeichnissen der
vorhandenen PD-Disketten anzulegen. Ein Aufruf wie
cd Diskx
führt dann zu der Aufforderung, die "AmigaLibDisk158"
einzulegen. Die Option "-f" erlaubt die Angabe einer
alternativen Datei mit Pfaden. Hierzu ist natürlich jeweils
die Option mit dem Dateinamen anzugeben. Da dies eher
unpraktisch viel zu tippen ist, sollten Sie einen Alias
vereinbaren. Zum Beispiel:
alias pd cd [] -fs:cd-pd-liste
Ruft man 'cd' mit einem '?' auf, gibt es eine Zeile aus, wie
es aufgerufen werden kann.
Version 1.01 : Der Fehler beim Wechseln des Verzeichnisses mit Kürzel
"relativ rückwärts" - Richtung Wurzel also - ist behoben.
Fortan sind Wechsel wie
cd /sy
von Erfolg gekrönt, wenn es im übergeordneten Verzeichnis
ein Verzeichnis gibt, das mit den Buchstaben "sy" beginnt.
Version 1.02 : Alle Buchstaben der Verzeichnisnamen in "cd.liste" werden
in Großbuchstaben umgewandelt. Dies hat einen Geschwindig-
keitsgewinn von 15 Prozent zur Folge, wenn in dieser Datei
gesucht werden muß.
Version 1.03 : cd kann nun auch mit dem Parameter '~' aufgerufen werden.
Ist dies der Fall, sucht er nach der Environment-Variable
HOME und wechselt in das Verzeichnis, welches in dieser
Variable steht.
Ab Betriebssystemversion 2.0 gibt es lokale und globale
Environment-Variablen. cd wertet zuerst die jeweils für
eine Shell lokale, und wenn diese nicht vorhanden ist, die
globale Variable HOME aus. Damit kann jede Shell ein eigene
HOME-Verzeichnis besitzten.
cd kennt einen weiteren Parameter. Es reagiert auf ".."
als Ersatz für den "/".
Version 1.04 : cd hatte Probleme beim Durchsuchen von Verzeichnissen, die
als Netz gemountet waren (nur wichtig bei der Benutzung
von PNET: oder DNET:). Dies ist nun nicht mehr der Fall.
Version 1.05 : Fehler behoben, der nur auftrat, wenn man im Root-Verzeichnis
einer Diskette oder Volumes war, die per Handler angesprochen
wurde. Dann setzte cd den Namen im Prompt einer Shell nicht
(nicht nutzungseinschränkend, nur lästig).
Version 1.06 : Link-Support soweit eingebaut, daß cd nun keine Links
verfolgt, wenn er eine neue Liste erstellt. Ein cd auf ein
Link geht nach wie vor.
Früher hieß 'cd' 'nd'. Die Namensänderung hat zur Folge, daß
alle Zusatzfiles nun ebenfalls mit cd statt mit nd beginnen.
Version 1.07 : Nun kann man 'cd' auch mehrfach nacheinander mit dem gleichen
Begriff aufrufen. 'cd' sucht dann "weiter". Es setzt also in
der Suchdatei wieder auf. Hierzu verwendet es die lokalen
Environment-Variablen 'CD_INDEX' und 'CD_LAST'. In CD_INDEX
speichert er die Position, an welcher er in der Suchdatei
gerade war und in CD_LAST das zuletzt gesuchte Wort.
Da hier lokale Variablen verwendet werden, funktioniert dies
Verfahren nur unter der Workbench 2.04 oder höher.
Außerdem hat sich das Dateiformat geändert. Alle Namen enden
nun mit einem '/' und einer '\0' -- nicht mehr mit einem Return.
Dies habe ich deswegen geändert, damit auch der MFR die
'cd.liste' nutzen kann. In der momentanen Version ist er nämlich
nicht in der Lage Softlinks zu verfolgen. Ein Abbruch ist die
Folge.
Version 1.08 : 'cd' benutzt ab OS2.0 nun die Betriebssystem-Funktion
'SetCurrentDirName()', um den Prompt auf den Stand zu bringen.
Dies hat den Vorteil, daß es nun nicht mehr zu Ungereimtheiten
bei Pfaden über 80 Zeichen kommt. Allerdings schneidet diese
Funktion alle Pfade ab, die mehr als 80 Zeichen enthalten.